#pragma once

#include "ServerHeader.h"

#include <adwaita.h>

G_BEGIN_DECLS

#define GROUP_TYPE_ENTRY (group_entry_get_type())
G_DECLARE_FINAL_TYPE(GroupEntry, group_entry, GROUP, ENTRY, AdwBin);

extern GroupEntry *last_group_entry;

extern GtkWidget *group_entry_new(void);

/* 设置事件组名称 */
extern void group_entry_set_group_name(GroupEntry *self,
				       const char *group_name);

/* 获取事件组名称 */
extern const char *group_entry_get_group_name(GroupEntry *self);

/* 获取组 GroupID */
extern const char *group_entry_get_group_id_str(GroupEntry *self);
extern euint32	   group_entry_get_group_id(GroupEntry *self);

/* 设置事件组 GroupID */
extern void group_entry_set_group_id(GroupEntry *self, euint32 group_id);

/* 设置是否为事件组管理者 */
extern void group_entry_set_is_creator(GroupEntry *self, bool is_creator);

/* 设置是否可修改组中的事件 */
extern void group_entry_set_can_write(GroupEntry *self, bool can_write);

/* 设置是否可加入 */
extern void group_entry_set_can_join(GroupEntry *self, bool can_join);

/* 设置是否全局可写 */
extern void group_entry_set_global_can_write(GroupEntry *self,
					     bool	 g_can_write);

/* 测试该组是否可写 */
extern bool group_entry_verify_can_modify(GroupEntry *self);

G_END_DECLS
